// 这个函数用于通过后台数据，来递归用户的路由


/* 在获取的菜单列表的请求中，我们打印的res中有下列数据
menuList: Array(5)
0: {name: "管理首页"}
1:
children: Array(3)
0: {name: "学员项目管理"}
1: {name: "学员资料"}
2: {name: "学员宿舍"}
length: 3
__proto__: Array(0)
name: "学员管理"
__proto__: Object
2: {name: "考勤管理"}
3: {name: "数据统计"}
4: {name: "我的中心"} 
但是上面返回回来的数据是不符合路由配置规则的*/
function recursionRoutes(allRoutes=[],menuList=[]){ //第一个参数是完整的路由配置，第二个参数是服务器返回来的菜单路由
    let userMenu = [];//将匹配好的路由配置，放到这个数组中
    // 两层循环，找出name相同的一项，并将相同的一项推送到空数组中
    menuList.forEach(item=>{
        allRoutes.forEach(v=>{
            if(item.name===v.meta.name){
                if(item.children&&item.children.length>0){ //如果item中有子元素，并且子元素的长度不为0
                    // 递归这个item下面的子元素，调用的是recursionRoutes这个函数，然后传进去两个v和item中的两个子元素，再次进行遍历，因为导出的结果是v,所以将满足条件的结果，赋值给v.children
                    v.children = recursionRoutes(v.children,item.children)
                }
                userMenu.push(v)
            }
        }) 
    })
    return userMenu
}
export default recursionRoutes